package StuDemo.Palindrome;

/**
 * @Author：DijaH
 * @Date：2023/4/5 8:56 下午
 * @Version：1.0.0
 * @Description： 最长回文子串
 */
public class code1_longestPalindrome {

    /**
     * 最长回文子串
     * @param s
     * @return
     */
    public String longestpalindrome(String s){
        if(s.length() < 2){
            return s;
        }
        int n = s.length();
        String res = "";
        for(int i = 0; i < n; i++){
            //以i为中心，向两边扩散
            String s1 = isPalindrome(s,i,i);
            String s2 = isPalindrome(s,i,i+1);
            res = res.length() > s1.length() ? res : s1;
            res = res.length() > s2.length() ? res : s2;
        }
        return res;
    }

    //判断是否为回文子串
    public static String  isPalindrome(String s,int left,int right){
        //判断索引是否查处范围，并且left的位置的值和right的位置的值相等
        while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)){
            left--;
            right++;
        }
        return s.substring(left+1,right);
    }
}
